This invention generally relates to digital data processing sytems. More specifically it relates the interconnection of various units in such a system and the transfer of data among those units.
A digital data processing system comprises three basic elements: namely, a memory element, an input-output element and a processor element. The memory element stores information in addressable storage locations. This information includes data and instructions for processing the data. The processor element transfers information to and from the memory element, interprets the incoming information as either data or instructions and processes data in accordance with the instructions. The input-output element also communicates with the memory element in order to transfer input data to the system and to obtain processed data from it.
As the basic operating speeds of the various elements in data processing systems has increased, the use of dynamic memory elements has become more popular in data processing systems. The dynamic memories are popular because characteristic retrieval times for such memories are much faster than the characteristic retrieval times for core memory units. Moreover, in comparison to conventional core memories, dynamic memories are less expensive to purchase and build, require less power to operate and allow significantly more storage locations to be incorporated in a given area on a circuit board. However, the storage circuitry in dynamic memories is volatile so any data stored in those memory elements is lost if the power to the memory element is lost. To overcome any transient loss of power, these memories are supplied with a battery backup. However, there is still a possibility of loss due to decay of signals within the memory. Therefore, these memories also contain circuitry that periodically "refreshes" the contents of the memory. However, when the power to the computer is turned off, as is routinely done overnight, the refreshing circuitry is disabled and so, again, the information in the memory is eventually lost.
When power is initially applied to a data processing system, it is necessary to perform some preliminary operations that are established by a single "bootstrap" program or set of bootstrap programs. These programs contain a minimum number of instructions that will allow an input/output unit to operate as a console unit or to enable other programs stored in a disk memory to be retrieved with increasing complexity. Dynamic memory elements also must be initialized especially if they contain error correcting codes. Typically this memory initialization is accomplished by a memory initialization program or memory initialization hardware. The memory initialization is accomplished in either application by identifying each memory location in sequence and storing predetermined values in each location. However, all memory elements in a data processing system are not the same. Therefore, it is necessary to provide the initialization sequence with information concerning memory size and other similar information. When the initialization is performed with software, the booting programs are made more complex. Similarly, hardware complexity is increased when such hardware initialization circuitry is added with the systems.
Therefore, it is an object of this invention to provide an initialization circuit for a memory element which simplifies memory initialization.
Another object of this invention is to provide a memory initialization circuit for a memory element that utilizes simplified hardware circuitry and further simplifies a booting program.